﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SisEagle.Common.Code;
using System.Text;
using AjaxControlToolkit;
using SisEagle.View.Web.Base;

namespace SisEagle.View.Web.UserControl
{
    public partial class UcBotoesCadastro:UserControlExterno
    {
        #region Controls
        private ImageButton btnNovo;
        private ImageButton btnSalvar;
        private ImageButton btnSalvarFechar;
        private ImageButton btnExcluir;
        private ImageButton btnCancelar;
        private ConfirmButtonExtender btnExcluirConfirmButtonExtender;

        #endregion



        #region OnInit - PageLoad
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            InicializeBotoes();
            btnExcluirConfirmButtonExtender.ConfirmOnFormSubmit = false;


        }
       
        public void SetAcao(ActionData Acao)
        {
            btnExcluir.Enabled = (Acao != ActionData.New);
            btnExcluir.CssClass = "";
        }
        #endregion

        #region Botoes
        public ConfirmButtonExtender BotaoExcluirConfirmButtonExtender
        {
            get
            {
                return btnExcluirConfirmButtonExtender;
            }
        }

        public ImageButton BotaoNovo
        {
            get
            {
                return btnNovo;
            }
        }
        public ImageButton BotaoSalvar
        {
            get
            {
                return btnSalvar;
            }
        }
        public ImageButton BotaoSalvarFechar
        {
            get
            {
                return btnSalvarFechar;
            }
        }
        public ImageButton BotaoExcluir
        {
            get
            {
                return btnExcluir;
            }
        }
        public ImageButton BotaoCancelar
        {
            get
            {
                return btnCancelar;
            }
        }

        #endregion

        #region Finds
        private void InicializeBotoes()
        {
            btnNovo = FindControl("btnNovo") as ImageButton;
            btnSalvar = FindControl("btnSalvar") as ImageButton;
            btnSalvarFechar = FindControl("btnSalvarFechar") as ImageButton;
            btnExcluir = FindControl("btnExcluir") as ImageButton;
            btnCancelar = FindControl("btnCancelar") as ImageButton;
            btnExcluirConfirmButtonExtender = FindControl("btnExcluirConfirmButtonExtender") as ConfirmButtonExtender;

        }
        #endregion

        #region Mensagem
        /// <summary>
        /// Verdadeiro quando alguma das mensagens adicionadas contem erros
        /// </summary>
        public bool HasError { get; internal set; }

        /// <summary>
        /// Get ou Set se pagina deve ser redirecionada ao salvar
        /// </summary>
        public Redirecionamento RedirecionaSalvar { get; set; }



        /// <summary>
        /// Adicionar mensagens de retorno a ser exibido ao cliente
        /// </summary>
        /// <param name="Mensagem"></param>
        public void AddMensagem(List<Mensagem> mensagens)
        {


            //this.HasError = mensagens.HasErro();

            StringBuilder javaScript = new StringBuilder();
            javaScript.Append("$(document).ready(function(){");
            javaScript.Append("   if (Notificacao == null) { Notificacao = new NotificacaoMensagem();}");
            mensagens.ForEach(msg => {
                if(msg.Tipo == MensagemTipo.Erro)
                    javaScript.AppendFormat("   Notificacao.AdicionaMensagemErro('{0}','{1}');",msg.Tipo,msg.Texto);
                if(msg.Tipo == MensagemTipo.Aviso)
                    javaScript.AppendFormat("   Notificacao.AdicionaMensagemAviso('{0}','{1}');",msg.Tipo,msg.Texto);
            });

            if(mensagens.Count == 0)
            {
                javaScript.AppendFormat("   Notificacao.AdicionaMensagemAviso('{0}','{1}');","OK","Registro Salvo Com Sucesso"
);
            }

            javaScript.Append("     Notificacao.ExibeMensagens(true); });");

            Page.ClientScript.RegisterStartupScript(GetType(),Guid.NewGuid().ToString(),
                       javaScript.ToString(),true);

        }

        internal void AdicionaMensagem(string mensagens,MensagemTipo Tipo)
        {


            if (Tipo == MensagemTipo.Aviso)
            {
                ScriptManager.RegisterStartupScript(
                  this, GetType(), "Notificacao", ("showSuccessToast('" + mensagens + "')"), true);

            }

        }
        #endregion

    }
}
